import { ElMessage } from 'element-plus'

/**
 * 统一的错误处理函数
 * @param error 错误对象
 * @param defaultMessage 默认错误消息
 */
export function handleError(error: any, defaultMessage: string = '操作失败') {
  console.error('Error:', error)
  
  // 提取详细的错误信息
  let errorMessage = defaultMessage
  
  if (error?.response?.data?.data && typeof error.response.data.data === 'string') {
    // 后端返回的详细错误信息在data.data中
    errorMessage = error.response.data.data
  } else if (error?.response?.data?.message) {
    // 如果data.data不存在，使用message
    errorMessage = error.response.data.message
  } else if (error?.data && typeof error.data === 'string') {
    // 兼容其他情况
    errorMessage = error.data
  } else if (error?.message) {
    errorMessage = error.message
  }
  
  // 判断是否为基础数据维护提醒
  if (errorMessage.includes('【基础数据维护提醒】')) {
    ElMessage.warning({
      message: errorMessage,
      duration: 12000,  // 基础数据提醒延长显示时间
      showClose: true,
      dangerouslyUseHTMLString: false
    })
  } else {
    ElMessage.error({
      message: errorMessage,
      duration: 8000,
      showClose: true
    })
  }
  
  return errorMessage
}

/**
 * 显示基础数据维护提醒
 * @param message 提醒消息
 */
export function showDataMaintainWarning(message: string) {
  ElMessage.warning({
    message,
    duration: 12000,
    showClose: true,
    dangerouslyUseHTMLString: false
  })
}

/**
 * 显示成功消息
 * @param message 成功消息
 * @param duration 显示时长
 */
export function showSuccess(message: string, duration: number = 3000) {
  ElMessage.success({
    message,
    duration,
    showClose: true
  })
} 